perm filename TIC3D.LAP[206,JMC] blob sn#076836 filedate 1973-12-07 generic text, type T, neo UTF8
(DEFPROP TICTACFNS (TRY2 COMMENCE SQ EXT NEWGAME TER IMVAL SUCCESSORS REVERT UPDATE PTS LINES SORT SORTA SORTB S→
ORTC WIN ANSWER DOUBLETH TWOLIS THREAT) VALUE) 

(LAP COMMENCE SUBR) 
       (MOVEI 1 (QUOTE (POINTS T 114)) S) 
       (CALL 17 (E ARRAY) S) 
       (MOVEI 1 (QUOTE (LINES T 100)) S) 
       (CALL 17 (E ARRAY) S) 
       (MOVEI 1 (QUOTE (XCOUNT 44 114)) S) 
       (CALL 17 (E ARRAY) S) 
       (MOVEI 1 (QUOTE (OCOUNT 44 114)) S) 
       (CALL 17 (E ARRAY) S) 
       (PUSH P (C 0 0 (QUOTE 0) 0)) 
       (PUSH P (C 0 0 (QUOTE 0) 0)) 
       (PUSH P (C 0 0 (QUOTE NIL) 0)) 
       (PUSH P (C 0 0 (QUOTE NIL) 0)) 
 TAG1  (MOVEI 2 (QUOTE 3)) 
       (MOVE 1 -2 P) 
       (CALL 2 (E *GREAT) S) 
       (JUMPN 1 TAG4) 
       (MOVEI 1 (QUOTE 0)) 
       (MOVEM 1 0 P) 
 TAG2  (MOVEI 2 (QUOTE 3)) 
       (MOVE 1 0 P) 
       (CALL 2 (E *GREAT) S) 
       (JUMPN 1 TAG3) 
       (MOVEI 3 (QUOTE 0)) 
       (MOVE 2 0 P) 
       (MOVE 1 -2 P) 
       (CALL 3 (E SQ) S) 
       (MOVEI 3 (QUOTE 1)) 
       (MOVE 2 0 P) 
       (PUSH P 1) 
       (MOVE 1 -3 P) 
       (CALL 3 (E SQ) S) 
       (MOVEI 3 (QUOTE 2)) 
       (MOVE 2 -1 P) 
       (PUSH P 1) 
       (MOVE 1 -4 P) 
       (CALL 3 (E SQ) S) 
       (MOVEI 3 (QUOTE 3)) 
       (MOVE 2 -2 P) 
       (PUSH P 1) 
       (MOVE 1 -5 P) 
       (CALL 3 (E SQ) S) 
       (CALL 1 (E NCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (PUSH P 1) 
       (MOVE 1 -4 P) 
       (CALL 1 (E POINTS) S) 
       (POP P 1) 
       (PUSHJ P NSTR) 
       (MOVE 3 0 P) 
       (MOVEI 2 (QUOTE 0)) 
       (MOVE 1 -2 P) 
       (CALL 3 (E SQ) S) 
       (MOVE 3 0 P) 
       (MOVEI 2 (QUOTE 1)) 
       (PUSH P 1) 
       (MOVE 1 -3 P) 
       (CALL 3 (E SQ) S) 
       (MOVE 3 -1 P) 
       (MOVEI 2 (QUOTE 2)) 
       (PUSH P 1) 
       (MOVE 1 -4 P) 
       (CALL 3 (E SQ) S) 
       (MOVE 3 -2 P) 
       (MOVEI 2 (QUOTE 3)) 
       (PUSH P 1) 
       (MOVE 1 -5 P) 
       (CALL 3 (E SQ) S) 
       (CALL 1 (E NCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (MOVEI 2 (QUOTE 20)) 
       (PUSH P 1) 
       (MOVE 1 -4 P) 
       (CALL 2 (E *PLUS) S) 
       (CALL 1 (E POINTS) S) 
       (POP P 1) 
       (PUSHJ P NSTR) 
       (MOVE 3 0 P) 
       (MOVE 2 -2 P) 
       (MOVEI 1 (QUOTE 0)) 
       (CALL 3 (E SQ) S) 
       (MOVE 3 0 P) 
       (MOVE 2 -2 P) 
       (PUSH P 1) 
       (MOVEI 1 (QUOTE 1)) 
       (CALL 3 (E SQ) S) 
       (MOVE 3 -1 P) 
       (MOVE 2 -3 P) 
       (PUSH P 1) 
       (MOVEI 1 (QUOTE 2)) 
       (CALL 3 (E SQ) S) 
       (MOVE 3 -2 P) 
       (MOVE 2 -4 P) 
       (PUSH P 1) 
       (MOVEI 1 (QUOTE 3)) 
       (CALL 3 (E SQ) S) 
       (CALL 1 (E NCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (MOVEI 2 (QUOTE 40)) 
       (PUSH P 1) 
       (MOVE 1 -4 P) 
       (CALL 2 (E *PLUS) S) 
       (CALL 1 (E POINTS) S) 
       (POP P 1) 
       (PUSHJ P NSTR) 
       (MOVE 1 -3 P) 
       (CALL 1 (E ADD1) S) 
       (MOVEM 1 -3 P) 
       (MOVE 1 0 P) 
       (CALL 1 (E ADD1) S) 
       (MOVEM 1 0 P) 
       (JRST 0 TAG2) 
 TAG3  (MOVE 1 -2 P) 
       (CALL 1 (E ADD1) S) 
       (MOVEM 1 -2 P) 
       (JRST 0 TAG1) 
 TAG4  (MOVEI 1 (QUOTE 60)) 
       (MOVEI 2 (QUOTE 0)) 
       (MOVEM 2 -2 P) 
       (MOVEM 1 -3 P) 
 TAG5  (MOVEI 2 (QUOTE 3)) 
       (MOVE 1 -2 P) 
       (CALL 2 (E *GREAT) S) 
       (JUMPN 1 TAG6) 
       (MOVEI 3 (QUOTE 0)) 
       (MOVEI 2 (QUOTE 0)) 
       (MOVE 1 -2 P) 
       (CALL 3 (E SQ) S) 
       (MOVEI 3 (QUOTE 1)) 
       (MOVEI 2 (QUOTE 1)) 
       (PUSH P 1) 
       (MOVE 1 -3 P) 
       (CALL 3 (E SQ) S) 
       (MOVEI 3 (QUOTE 2)) 
       (MOVEI 2 (QUOTE 2)) 
       (PUSH P 1) 
       (MOVE 1 -4 P) 
       (CALL 3 (E SQ) S) 
       (MOVEI 3 (QUOTE 3)) 
       (MOVEI 2 (QUOTE 3)) 
       (PUSH P 1) 
       (MOVE 1 -5 P) 
       (CALL 3 (E SQ) S) 
       (CALL 1 (E NCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (PUSH P 1) 
       (MOVE 1 -4 P) 
       (CALL 1 (E POINTS) S) 
       (POP P 1) 
       (PUSHJ P NSTR) 
       (MOVEI 3 (QUOTE 3)) 
       (MOVEI 2 (QUOTE 0)) 
       (MOVE 1 -2 P) 
       (CALL 3 (E SQ) S) 
       (MOVEI 3 (QUOTE 2)) 
       (MOVEI 2 (QUOTE 1)) 
       (PUSH P 1) 
       (MOVE 1 -3 P) 
       (CALL 3 (E SQ) S) 
       (MOVEI 3 (QUOTE 1)) 
       (MOVEI 2 (QUOTE 2)) 
       (PUSH P 1) 
       (MOVE 1 -4 P) 
       (CALL 3 (E SQ) S) 
       (MOVEI 3 (QUOTE 0)) 
       (MOVEI 2 (QUOTE 3)) 
       (PUSH P 1) 
       (MOVE 1 -5 P) 
       (CALL 3 (E SQ) S) 
       (CALL 1 (E NCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (PUSH P 1) 
       (MOVE 1 -4 P) 
       (CALL 1 (E ADD1) S) 
       (CALL 1 (E POINTS) S) 
       (POP P 1) 
       (PUSHJ P NSTR) 
       (MOVEI 3 (QUOTE 0)) 
       (MOVE 2 -2 P) 
       (MOVEI 1 (QUOTE 0)) 
       (CALL 3 (E SQ) S) 
       (MOVEI 3 (QUOTE 1)) 
       (MOVE 2 -2 P) 
       (PUSH P 1) 
       (MOVEI 1 (QUOTE 1)) 
       (CALL 3 (E SQ) S) 
       (MOVEI 3 (QUOTE 2)) 
       (MOVE 2 -3 P) 
       (PUSH P 1) 
       (MOVEI 1 (QUOTE 2)) 
       (CALL 3 (E SQ) S) 
       (MOVEI 3 (QUOTE 3)) 
       (MOVE 2 -4 P) 
       (PUSH P 1) 
       (MOVEI 1 (QUOTE 3)) 
       (CALL 3 (E SQ) S) 
       (CALL 1 (E NCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (MOVEI 2 (QUOTE 10)) 
       (PUSH P 1) 
       (MOVE 1 -4 P) 
       (CALL 2 (E *PLUS) S) 
       (CALL 1 (E POINTS) S) 
       (POP P 1) 
       (PUSHJ P NSTR) 
       (MOVEI 3 (QUOTE 3)) 
       (MOVE 2 -2 P) 
       (MOVEI 1 (QUOTE 0)) 
       (CALL 3 (E SQ) S) 
       (MOVEI 3 (QUOTE 2)) 
       (MOVE 2 -2 P) 
       (PUSH P 1) 
       (MOVEI 1 (QUOTE 1)) 
       (CALL 3 (E SQ) S) 
       (MOVEI 3 (QUOTE 1)) 
       (MOVE 2 -3 P) 
       (PUSH P 1) 
       (MOVEI 1 (QUOTE 2)) 
       (CALL 3 (E SQ) S) 
       (MOVEI 3 (QUOTE 0)) 
       (MOVE 2 -4 P) 
       (PUSH P 1) 
       (MOVEI 1 (QUOTE 3)) 
       (CALL 3 (E SQ) S) 
       (CALL 1 (E NCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (MOVEI 2 (QUOTE 11)) 
       (PUSH P 1) 
       (MOVE 1 -4 P) 
       (CALL 2 (E *PLUS) S) 
       (CALL 1 (E POINTS) S) 
       (POP P 1) 
       (PUSHJ P NSTR) 
       (MOVE 3 -2 P) 
       (MOVEI 2 (QUOTE 0)) 
       (MOVEI 1 (QUOTE 0)) 
       (CALL 3 (E SQ) S) 
       (MOVE 3 -2 P) 
       (MOVEI 2 (QUOTE 1)) 
       (PUSH P 1) 
       (MOVEI 1 (QUOTE 1)) 
       (CALL 3 (E SQ) S) 
       (MOVE 3 -3 P) 
       (MOVEI 2 (QUOTE 2)) 
       (PUSH P 1) 
       (MOVEI 1 (QUOTE 2)) 
       (CALL 3 (E SQ) S) 
       (MOVE 3 -4 P) 
       (MOVEI 2 (QUOTE 3)) 
       (PUSH P 1) 
       (MOVEI 1 (QUOTE 3)) 
       (CALL 3 (E SQ) S) 
       (CALL 1 (E NCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (MOVEI 2 (QUOTE 20)) 
       (PUSH P 1) 
       (MOVE 1 -4 P) 
       (CALL 2 (E *PLUS) S) 
       (CALL 1 (E POINTS) S) 
       (POP P 1) 
       (PUSHJ P NSTR) 
       (MOVE 3 -2 P) 
       (MOVEI 2 (QUOTE 3)) 
       (MOVEI 1 (QUOTE 0)) 
       (CALL 3 (E SQ) S) 
       (MOVE 3 -2 P) 
       (MOVEI 2 (QUOTE 2)) 
       (PUSH P 1) 
       (MOVEI 1 (QUOTE 1)) 
       (CALL 3 (E SQ) S) 
       (MOVE 3 -3 P) 
       (MOVEI 2 (QUOTE 1)) 
       (PUSH P 1) 
       (MOVEI 1 (QUOTE 2)) 
       (CALL 3 (E SQ) S) 
       (MOVE 3 -4 P) 
       (MOVEI 2 (QUOTE 0)) 
       (PUSH P 1) 
       (MOVEI 1 (QUOTE 3)) 
       (CALL 3 (E SQ) S) 
       (CALL 1 (E NCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (MOVEI 2 (QUOTE 21)) 
       (PUSH P 1) 
       (MOVE 1 -4 P) 
       (CALL 2 (E *PLUS) S) 
       (CALL 1 (E POINTS) S) 
       (POP P 1) 
       (PUSHJ P NSTR) 
       (MOVEI 2 (QUOTE 2)) 
       (MOVE 1 -3 P) 
       (CALL 2 (E *PLUS) S) 
       (MOVEM 1 -3 P) 
       (MOVE 1 -2 P) 
       (CALL 1 (E ADD1) S) 
       (MOVEM 1 -2 P) 
       (JRST 0 TAG5) 
 TAG6  (MOVEI 3 (QUOTE 0)) 
       (MOVEI 2 (QUOTE 0)) 
       (MOVEI 1 (QUOTE 0)) 
       (CALL 3 (E SQ) S) 
       (MOVEI 3 (QUOTE 1)) 
       (MOVEI 2 (QUOTE 1)) 
       (PUSH P 1) 
       (MOVEI 1 (QUOTE 1)) 
       (CALL 3 (E SQ) S) 
       (MOVEI 3 (QUOTE 2)) 
       (MOVEI 2 (QUOTE 2)) 
       (PUSH P 1) 
       (MOVEI 1 (QUOTE 2)) 
       (CALL 3 (E SQ) S) 
       (MOVEI 3 (QUOTE 3)) 
       (MOVEI 2 (QUOTE 3)) 
       (PUSH P 1) 
       (MOVEI 1 (QUOTE 3)) 
       (CALL 3 (E SQ) S) 
       (CALL 1 (E NCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (PUSH P 1) 
       (MOVEI 1 (QUOTE 110)) 
       (CALL 1 (E POINTS) S) 
       (POP P 1) 
       (PUSHJ P NSTR) 
       (MOVEI 3 (QUOTE 3)) 
       (MOVEI 2 (QUOTE 0)) 
       (MOVEI 1 (QUOTE 0)) 
       (CALL 3 (E SQ) S) 
       (MOVEI 3 (QUOTE 2)) 
       (MOVEI 2 (QUOTE 1)) 
       (PUSH P 1) 
       (MOVEI 1 (QUOTE 1)) 
       (CALL 3 (E SQ) S) 
       (MOVEI 3 (QUOTE 1)) 
       (MOVEI 2 (QUOTE 2)) 
       (PUSH P 1) 
       (MOVEI 1 (QUOTE 2)) 
       (CALL 3 (E SQ) S) 
       (MOVEI 3 (QUOTE 0)) 
       (MOVEI 2 (QUOTE 3)) 
       (PUSH P 1) 
       (MOVEI 1 (QUOTE 3)) 
       (CALL 3 (E SQ) S) 
       (CALL 1 (E NCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (PUSH P 1) 
       (MOVEI 1 (QUOTE 111)) 
       (CALL 1 (E POINTS) S) 
       (POP P 1) 
       (PUSHJ P NSTR) 
       (MOVEI 3 (QUOTE 0)) 
       (MOVEI 2 (QUOTE 3)) 
       (MOVEI 1 (QUOTE 0)) 
       (CALL 3 (E SQ) S) 
       (MOVEI 3 (QUOTE 1)) 
       (MOVEI 2 (QUOTE 2)) 
       (PUSH P 1) 
       (MOVEI 1 (QUOTE 1)) 
       (CALL 3 (E SQ) S) 
       (MOVEI 3 (QUOTE 2)) 
       (MOVEI 2 (QUOTE 1)) 
       (PUSH P 1) 
       (MOVEI 1 (QUOTE 2)) 
       (CALL 3 (E SQ) S) 
       (MOVEI 3 (QUOTE 3)) 
       (MOVEI 2 (QUOTE 0)) 
       (PUSH P 1) 
       (MOVEI 1 (QUOTE 3)) 
       (CALL 3 (E SQ) S) 
       (CALL 1 (E NCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (PUSH P 1) 
       (MOVEI 1 (QUOTE 112)) 
       (CALL 1 (E POINTS) S) 
       (POP P 1) 
       (PUSHJ P NSTR) 
       (MOVEI 3 (QUOTE 3)) 
       (MOVEI 2 (QUOTE 3)) 
       (MOVEI 1 (QUOTE 0)) 
       (CALL 3 (E SQ) S) 
       (MOVEI 3 (QUOTE 2)) 
       (MOVEI 2 (QUOTE 2)) 
       (PUSH P 1) 
       (MOVEI 1 (QUOTE 1)) 
       (CALL 3 (E SQ) S) 
       (MOVEI 3 (QUOTE 1)) 
       (MOVEI 2 (QUOTE 1)) 
       (PUSH P 1) 
       (MOVEI 1 (QUOTE 2)) 
       (CALL 3 (E SQ) S) 
       (MOVEI 3 (QUOTE 0)) 
       (MOVEI 2 (QUOTE 0)) 
       (PUSH P 1) 
       (MOVEI 1 (QUOTE 3)) 
       (CALL 3 (E SQ) S) 
       (CALL 1 (E NCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (PUSH P 1) 
       (MOVEI 1 (QUOTE 113)) 
       (CALL 1 (E POINTS) S) 
       (POP P 1) 
       (PUSHJ P NSTR) 
       (MOVEI 1 (QUOTE 0)) 
       (MOVEM 1 -1 P) 
 TAG7  (MOVEI 2 (QUOTE 77)) 
       (MOVE 1 -1 P) 
       (CALL 2 (E *GREAT) S) 
       (JUMPN 1 TAG10) 
       (MOVE 1 -1 P) 
       (CALL 1 (E LINES) S) 
       (MOVEI 1 (QUOTE NIL)) 
       (PUSHJ P NSTR) 
       (MOVE 1 -1 P) 
       (CALL 1 (E ADD1) S) 
       (MOVEM 1 -1 P) 
       (JRST 0 TAG7) 
 TAG10 (MOVEI 1 (QUOTE 0)) 
       (MOVEM 1 -3 P) 
 TAG11 (MOVEI 2 (QUOTE 113)) 
       (MOVE 1 -3 P) 
       (CALL 2 (E *GREAT) S) 
       (JUMPN 1 TAG14) 
       (MOVE 1 -3 P) 
       (CALL 1 (E POINTS) S) 
       (MOVEM 1 -2 P) 
 TAG12 (MOVE 1 -2 P) 
       (JUMPE 1 TAG13) 
       (HLRZ@ 1 -2 P) 
       (CALL 1 (E LINES) S) 
       (MOVE 2 -3 P) 
       (CALL 2 (E XCONS) S) 
       (PUSH P 1) 
       (HLRZ@ 1 -3 P) 
       (CALL 1 (E LINES) S) 
       (POP P 1) 
       (PUSHJ P NSTR) 
       (HRRZ@ 1 -2 P) 
       (MOVEM 1 -2 P) 
       (JRST 0 TAG12) 
 TAG13 (MOVE 1 -3 P) 
       (CALL 1 (E ADD1) S) 
       (MOVEM 1 -3 P) 
       (JRST 0 TAG11) 
 TAG14 (MOVEI 1 (QUOTE NIL)) 
       (SUB P (C 4 0 4 0)) 
       (POPJ P) 
       NIL 

(LAP SQ SUBR) 
       (PUSH P 1) 
       (MOVEI 1 (QUOTE 4)) 
       (PUSH P 3) 
       (CALL 2 (E *TIMES) S) 
       (MOVE 2 -1 P) 
       (CALL 2 (E *PLUS) S) 
       (POP P 2) 
       (MOVEM 1 0 P) 
       (MOVEI 1 (QUOTE 20)) 
       (CALL 2 (E *TIMES) S) 
       (POP P 2) 
       (JCALL 2 (E *PLUS) S) 
       NIL 

(LAP EXT SUBR) 
       (HLRZ@ 1 1) 
       (POPJ P) 
       NIL 

(LAP NEWGAME SUBR) 
       (PUSH P (C 0 0 (QUOTE -1) 0)) 
 TAG1  (MOVE 1 0 P) 
       (CALL 1 (E ADD1) S) 
       (MOVEM 1 0 P) 
       (CALL 1 (E XCOUNT) S) 
       (MOVEI 1 (QUOTE 0)) 
       (PUSHJ P NSTR) 
       (MOVE 1 0 P) 
       (CALL 1 (E OCOUNT) S) 
       (MOVEI 1 (QUOTE 0)) 
       (PUSHJ P NSTR) 
       (MOVEI 2 (QUOTE 114)) 
       (MOVE 1 0 P) 
       (CALL 2 (E *LESS) S) 
       (JUMPN 1 TAG1) 
       (CLEARM 0 (SPECIAL P1) S) 
       (CLEARM 0 (SPECIAL XS) S) 
       (CLEARM 0 (SPECIAL OS) S) 
       (MOVEI 2 (QUOTE 77)) 
       (MOVEI 1 (QUOTE 0)) 
       (CALL 2 (E MAKEL) S) 
       (MOVEM 1 (SPECIAL BS) S) 
       (CLEARM 0 (SPECIAL W) S) 
       (MOVEI 1 (QUOTE 0)) 
       (MOVEM 1 (SPECIAL LEVEL) S) 
       (MOVEI 1 (QUOTE 0)) 
       (MOVEM 1 (SPECIAL COUNT) S) 
       (MOVEI 1 (QUOTE (NEW GAME)) S) 
       (SUB P (C 1 0 1 0)) 
       (POPJ P) 
       NIL 

(LAP MAKEL SUBR) 
       (PUSH P 1) 
       (PUSH P 2) 
       (CALL 2 (E *GREAT) S) 
       (JUMPE 1 TAG2) 
       (MOVEI 1 (QUOTE NIL)) 
       (JRST 0 TAG1) 
 TAG2  (MOVE 1 -1 P) 
       (CALL 1 (E ADD1) S) 
       (MOVE 2 0 P) 
       (CALL 2 (E MAKEL) S) 
       (MOVE 2 -1 P) 
       (CALL 2 (E XCONS) S) 
 TAG1  (SUB P (C 2 0 2 0)) 
       (POPJ P) 
       NIL 

(LAP SUBFUN1TER SUBR) 
       (CALL 1 (E XCOUNT) S) 
       (MOVEI 2 (QUOTE 4)) 
       (JCALL 2 (E EQUAL) S) 
       NIL 

(LAP SUBFUN2TER SUBR) 
       (CALL 1 (E OCOUNT) S) 
       (MOVEI 2 (QUOTE 4)) 
       (JCALL 2 (E EQUAL) S) 
       NIL 

(LAP TER SUBR) 
       (PUSH P 1) 
       (PUSH P 2) 
       (PUSH P 3) 
       (JUMPE 1 TAG2) 
       (MOVEI 2 (QUOTE 100)) 
       (MOVE 1 (SPECIAL LEVEL) S) 
       (CALL 2 (E EQUAL) S) 
       (JUMPN 1 TAG1) 
       (MOVE 2 (SPECIAL LEVEL) S) 
       (MOVEI 1 (QUOTE 100)) 
       (CALL 2 (E *DIF) S) 
       (MOVE 2 -1 P) 
       (CALL 2 (E *LESS) S) 
       (JUMPN 1 TAG1) 
       (MOVE 2 (SPECIAL LEVEL) S) 
       (MOVEI 1 (QUOTE -100)) 
       (CALL 2 (E *PLUS) S) 
       (MOVE 2 0 P) 
       (CALL 2 (E *GREAT) S) 
       (JUMPN 1 TAG1) 
       (MOVE 1 (SPECIAL W) S) 
       (JUMPE 1 TAG10) 
       (HLRZ@ 1 -2 P) 
       (CALL 1 (E LINES) S) 
       (MOVE 2 1) 
       (MOVEI 1 (QUOTE SUBFUN1TER) S) 
       (CALL 2 (E ORLIS) S) 
       (JRST 0 TAG7) 
 TAG10 (HLRZ@ 1 -2 P) 
       (CALL 1 (E LINES) S) 
       (MOVE 2 1) 
       (MOVEI 1 (QUOTE SUBFUN2TER) S) 
       (CALL 2 (E ORLIS) S) 
 TAG7  (JUMPN 1 TAG1) 
 TAG2  (TDZA 1 1) 
 TAG1  (MOVEI 1 (QUOTE T) S) 
       (SUB P (C 3 0 3 0)) 
       (POPJ P) 
       NIL 

(LAP IMVAL SUBR) 
       (MOVE 1 (SPECIAL W) S) 
       (JUMPE 1 TAG4) 
       (PUSH P (C 0 0 (QUOTE 0) 0)) 
 TAG1  (MOVE 1 0 P) 
       (CALL 1 (E ADD1) S) 
       (MOVEM 1 0 P) 
       (CALL 1 (E XCOUNT) S) 
       (MOVEI 2 (QUOTE 3)) 
       (CALL 2 (E EQUAL) S) 
       (JUMPE 1 TAG11) 
       (MOVE 2 (SPECIAL LEVEL) S) 
       (MOVEI 1 (QUOTE 12)) 
       (CALL 2 (E *DIF) S) 
       (JRST 0 TAG5) 
 TAG11 (MOVEI 2 (QUOTE 10)) 
       (MOVE 1 0 P) 
       (CALL 2 (E *LESS) S) 
       (JUMPN 1 TAG1) 
       (MOVEI 1 (QUOTE 0)) 
       (JRST 0 TAG5) 
 TAG5  (SUB P (C 1 0 1 0)) 
       (JRST 0 TAG3) 
 TAG4  (PUSH P (C 0 0 (QUOTE 0) 0)) 
 TAG2  (MOVE 1 0 P) 
       (CALL 1 (E ADD1) S) 
       (MOVEM 1 0 P) 
       (CALL 1 (E OCOUNT) S) 
       (MOVEI 2 (QUOTE 3)) 
       (CALL 2 (E EQUAL) S) 
       (JUMPE 1 TAG23) 
       (MOVE 2 (SPECIAL LEVEL) S) 
       (MOVEI 1 (QUOTE -12)) 
       (CALL 2 (E *PLUS) S) 
       (JRST 0 TAG17) 
 TAG23 (MOVEI 2 (QUOTE 10)) 
       (MOVE 1 0 P) 
       (CALL 2 (E *LESS) S) 
       (JUMPN 1 TAG2) 
       (MOVEI 1 (QUOTE 0)) 
       (JRST 0 TAG17) 
 TAG17 (SUB P (C 1 0 1 0)) 
 TAG3  (POPJ P) 
       NIL 

(LAP SUCCESSORS SUBR) 
       (PUSH P (SPECIAL BS) S) 
       (PUSH P 1) 
       (PUSH P (C 0 0 (QUOTE NIL) 0)) 
       (PUSH P (C 0 0 (QUOTE NIL) 0)) 
       (PUSH P (C 0 0 (QUOTE NIL) 0)) 
 TAG1  (MOVE 1 -4 P) 
       (JUMPE 1 TAG6) 
       (HLRZ@ 1 -4 P) 
       (MOVE 2 -3 P) 
       (CALL 2 (E CONS) S) 
       (CALL 1 (E NCONS) S) 
       (MOVEM 1 -2 P) 
       (MOVE 1 -1 P) 
       (JUMPE 1 TAG12) 
       (MOVE 1 -2 P) 
       (HRRM@ 1 -1 P) 
       (HRRZ@ 2 -1 P) 
       (JRST 0 TAG11) 
 TAG12 (MOVE 2 -2 P) 
       (MOVEM 2 0 P) 
 TAG11 (HRRZ@ 1 -4 P) 
       (MOVEM 1 -4 P) 
       (MOVEM 2 -1 P) 
       (JRST 0 TAG1) 
 TAG6  (MOVE 1 0 P) 
       (SUB P (C 5 0 5 0)) 
       (JCALL 1 (E SORT) S) 
       NIL 

(LAP REVERT SUBR) 
       (MOVE 1 (SPECIAL LEVEL) S) 
       (CALL 1 (E SUB1) S) 
       (MOVEM 1 (SPECIAL LEVEL) S) 
       (PUSH P (C 0 0 (QUOTE NIL) 0)) 
       (MOVE 1 (SPECIAL W) S) 
       (JUMPE 1 TAG7) 
       (MOVE 1 (SPECIAL XS) S) 
       (JRST 0 TAG6) 
 TAG7  (MOVE 1 (SPECIAL OS) S) 
 TAG6  (MOVE 2 (SPECIAL BS) S) 
       (HLRZ@ 1 1) 
       (CALL 2 (E CONS) S) 
       (MOVEM 1 (SPECIAL BS) S) 
       (MOVE 1 (SPECIAL W) S) 
       (JUMPE 1 TAG13) 
       (HRRZ@ 1 (SPECIAL XS) S) 
       (MOVEM 1 (SPECIAL XS) S) 
       (JRST 0 TAG12) 
 TAG13 (HRRZ@ 1 (SPECIAL OS) S) 
       (MOVEM 1 (SPECIAL OS) S) 
 TAG12 (HLRZ@ 1 (SPECIAL P1) S) 
       (CALL 1 (E LINES) S) 
       (MOVEM 1 0 P) 
 TAG1  (MOVE 1 0 P) 
       (JUMPE 1 TAG2) 
       (MOVE 1 (SPECIAL W) S) 
       (JUMPE 1 TAG21) 
       (HLRZ@ 1 0 P) 
       (CALL 1 (E XCOUNT) S) 
       (CALL 1 (E SUB1) S) 
       (PUSH P 1) 
       (HLRZ@ 1 -1 P) 
       (CALL 1 (E XCOUNT) S) 
       (POP P 1) 
       (PUSHJ P NSTR) 
       (JRST 0 TAG20) 
 TAG21 (HLRZ@ 1 0 P) 
       (CALL 1 (E OCOUNT) S) 
       (CALL 1 (E SUB1) S) 
       (PUSH P 1) 
       (HLRZ@ 1 -1 P) 
       (CALL 1 (E OCOUNT) S) 
       (POP P 1) 
       (PUSHJ P NSTR) 
 TAG20 (HRRZ@ 1 0 P) 
       (MOVEM 1 0 P) 
       (JRST 0 TAG1) 
 TAG2  (MOVE 1 (SPECIAL W) S) 
       (JUMPE 1 TAG24) 
       (TDZA 1 1) 
 TAG24 (MOVEI 1 (QUOTE T) S) 
       (MOVEM 1 (SPECIAL W) S) 
       (HRRZ@ 1 (SPECIAL P1) S) 
       (MOVEM 1 (SPECIAL P1) S) 
       (MOVEI 1 (QUOTE NIL)) 
       (SUB P (C 1 0 1 0)) 
       (POPJ P) 
       NIL 

(LAP UPDATE SUBR) 
       (PUSH P 1) 
       (MOVE 1 (SPECIAL LEVEL) S) 
       (CALL 1 (E ADD1) S) 
       (MOVEM 1 (SPECIAL LEVEL) S) 
       (PUSH P (C 0 0 (QUOTE NIL) 0)) 
       (MOVE 1 (SPECIAL W) S) 
       (JUMPE 1 TAG7) 
       (MOVE 2 (SPECIAL OS) S) 
       (MOVE 1 -1 P) 
       (CALL 2 (E CONS) S) 
       (MOVEM 1 (SPECIAL OS) S) 
       (JRST 0 TAG6) 
 TAG7  (MOVE 2 (SPECIAL XS) S) 
       (MOVE 1 -1 P) 
       (CALL 2 (E CONS) S) 
       (MOVEM 1 (SPECIAL XS) S) 
 TAG6  (MOVE 2 (SPECIAL BS) S) 
       (MOVE 1 -1 P) 
       (CALL 2 (E DELETE) S) 
       (MOVEM 1 (SPECIAL BS) S) 
       (MOVE 2 (SPECIAL P1) S) 
       (MOVE 1 -1 P) 
       (CALL 2 (E CONS) S) 
       (MOVEM 1 (SPECIAL P1) S) 
       (MOVE 1 (SPECIAL COUNT) S) 
       (CALL 1 (E ADD1) S) 
       (MOVEM 1 (SPECIAL COUNT) S) 
       (MOVE 1 -1 P) 
       (CALL 1 (E LINES) S) 
       (MOVEM 1 0 P) 
 TAG1  (MOVE 1 0 P) 
       (JUMPE 1 TAG2) 
       (MOVE 1 (SPECIAL W) S) 
       (JUMPE 1 TAG15) 
       (HLRZ@ 1 0 P) 
       (CALL 1 (E OCOUNT) S) 
       (CALL 1 (E ADD1) S) 
       (PUSH P 1) 
       (HLRZ@ 1 -1 P) 
       (CALL 1 (E OCOUNT) S) 
       (POP P 1) 
       (PUSHJ P NSTR) 
       (JRST 0 TAG14) 
 TAG15 (HLRZ@ 1 0 P) 
       (CALL 1 (E XCOUNT) S) 
       (CALL 1 (E ADD1) S) 
       (PUSH P 1) 
       (HLRZ@ 1 -1 P) 
       (CALL 1 (E XCOUNT) S) 
       (POP P 1) 
       (PUSHJ P NSTR) 
 TAG14 (HRRZ@ 1 0 P) 
       (MOVEM 1 0 P) 
       (JRST 0 TAG1) 
 TAG2  (MOVE 1 (SPECIAL W) S) 
       (JUMPE 1 TAG20) 
       (TDZA 1 1) 
 TAG20 (MOVEI 1 (QUOTE T) S) 
       (MOVEM 1 (SPECIAL W) S) 
       (MOVEI 1 (QUOTE NIL)) 
       (SUB P (C 2 0 2 0)) 
       (POPJ P) 
       NIL 

(LAP SORT SUBR) 
       (MOVEI 3 (QUOTE NIL)) 
       (MOVEI 2 (QUOTE NIL)) 
       (JCALL 3 (E SORTA) S) 
       NIL 

(LAP SORTA SUBR) 
       (PUSH P 1) 
       (PUSH P 2) 
       (PUSH P 3) 
       (JUMPN 1 TAG2) 
       (MOVE 2 3) 
       (MOVE 1 -1 P) 
       (CALL 2 (E *APPEND) S) 
       (JRST 0 TAG1) 
 TAG2  (HLRZ@ 1 1) 
       (CALL 1 (E WIN) S) 
       (JUMPE 1 TAG4) 
       (HLRZ@ 1 -2 P) 
       (CALL 1 (E NCONS) S) 
       (JRST 0 TAG1) 
 TAG4  (HLRZ@ 1 -2 P) 
       (CALL 1 (E ANSWER) S) 
       (JUMPE 1 TAG5) 
       (HLRZ@ 2 -2 P) 
       (HRRZ@ 1 -2 P) 
       (CALL 2 (E SORTB) S) 
       (JRST 0 TAG1) 
 TAG5  (HLRZ@ 1 -2 P) 
       (CALL 1 (E DOUBLETH) S) 
       (JUMPE 1 TAG6) 
       (HLRZ@ 2 -2 P) 
       (HRRZ@ 1 -2 P) 
       (CALL 2 (E SORTC) S) 
       (JRST 0 TAG1) 
 TAG6  (HLRZ@ 1 -2 P) 
       (CALL 1 (E THREAT) S) 
       (JUMPE 1 TAG7) 
       (MOVE 2 -1 P) 
       (HLRZ@ 1 -2 P) 
       (CALL 2 (E CONS) S) 
       (MOVE 3 0 P) 
       (MOVE 2 1) 
       (HRRZ@ 1 -2 P) 
       (CALL 3 (E SORTA) S) 
       (JRST 0 TAG1) 
 TAG7  (MOVE 2 0 P) 
       (HLRZ@ 1 -2 P) 
       (CALL 2 (E CONS) S) 
       (MOVE 3 1) 
       (MOVE 2 -1 P) 
       (HRRZ@ 1 -2 P) 
       (CALL 3 (E SORTA) S) 
 TAG1  (SUB P (C 3 0 3 0)) 
       (POPJ P) 
       NIL 

(LAP SORTB SUBR) 
       (PUSH P 1) 
       (PUSH P 2) 
       (JUMPN 1 TAG2) 
       (MOVE 1 2) 
       (CALL 1 (E NCONS) S) 
       (JRST 0 TAG1) 
 TAG2  (HLRZ@ 1 1) 
       (CALL 1 (E WIN) S) 
       (JUMPE 1 TAG4) 
       (HLRZ@ 1 -1 P) 
       (CALL 1 (E NCONS) S) 
       (JRST 0 TAG1) 
 TAG4  (MOVE 2 0 P) 
       (HRRZ@ 1 -1 P) 
       (CALL 2 (E SORTB) S) 
 TAG1  (SUB P (C 2 0 2 0)) 
       (POPJ P) 
       NIL 

(LAP SORTC SUBR) 
       (PUSH P 1) 
       (PUSH P 2) 
       (JUMPN 1 TAG2) 
       (MOVE 1 2) 
       (CALL 1 (E NCONS) S) 
       (JRST 0 TAG1) 
 TAG2  (HLRZ@ 1 1) 
       (CALL 1 (E WIN) S) 
       (JUMPE 1 TAG4) 
       (HLRZ@ 1 -1 P) 
       (CALL 1 (E NCONS) S) 
       (JRST 0 TAG1) 
 TAG4  (HLRZ@ 1 -1 P) 
       (CALL 1 (E ANSWER) S) 
       (JUMPE 1 TAG5) 
       (HLRZ@ 2 -1 P) 
       (HRRZ@ 1 -1 P) 
       (CALL 2 (E SORTB) S) 
       (JRST 0 TAG1) 
 TAG5  (MOVE 2 0 P) 
       (HRRZ@ 1 -1 P) 
       (CALL 2 (E SORTC) S) 
 TAG1  (SUB P (C 2 0 2 0)) 
       (POPJ P) 
       NIL 

(LAP SUBFUN1WIN SUBR) 
       (CALL 1 (E OCOUNT) S) 
       (MOVEI 2 (QUOTE 2)) 
       (JCALL 2 (E EQUAL) S) 
       NIL 

(LAP SUBFUN2WIN SUBR) 
       (CALL 1 (E XCOUNT) S) 
       (MOVEI 2 (QUOTE 2)) 
       (JCALL 2 (E EQUAL) S) 
       NIL 

(LAP WIN SUBR) 
       (PUSH P 1) 
       (MOVE 1 (SPECIAL W) S) 
       (JUMPE 1 TAG2) 
       (HLRZ@ 1 0 P) 
       (CALL 1 (E LINES) S) 
       (MOVE 2 1) 
       (MOVEI 1 (QUOTE SUBFUN1WIN) S) 
       (CALL 2 (E ORLIS) S) 
       (JRST 0 TAG1) 
 TAG2  (HLRZ@ 1 0 P) 
       (CALL 1 (E LINES) S) 
       (MOVE 2 1) 
       (MOVEI 1 (QUOTE SUBFUN2WIN) S) 
       (CALL 2 (E ORLIS) S) 
 TAG1  (SUB P (C 1 0 1 0)) 
       (POPJ P) 
       NIL 

(LAP SUBFUN1ANSWER SUBR) 
       (CALL 1 (E XCOUNT) S) 
       (MOVEI 2 (QUOTE 2)) 
       (JCALL 2 (E EQUAL) S) 
       NIL 

(LAP SUBFUN2ANSWER SUBR) 
       (CALL 1 (E OCOUNT) S) 
       (MOVEI 2 (QUOTE 2)) 
       (JCALL 2 (E EQUAL) S) 
       NIL 

(LAP ANSWER SUBR) 
       (PUSH P 1) 
       (MOVE 1 (SPECIAL W) S) 
       (JUMPE 1 TAG2) 
       (HLRZ@ 1 0 P) 
       (CALL 1 (E LINES) S) 
       (MOVE 2 1) 
       (MOVEI 1 (QUOTE SUBFUN1ANSWER) S) 
       (CALL 2 (E ORLIS) S) 
       (JRST 0 TAG1) 
 TAG2  (HLRZ@ 1 0 P) 
       (CALL 1 (E LINES) S) 
       (MOVE 2 1) 
       (MOVEI 1 (QUOTE SUBFUN2ANSWER) S) 
       (CALL 2 (E ORLIS) S) 
 TAG1  (SUB P (C 1 0 1 0)) 
       (POPJ P) 
       NIL 

(LAP SUBFUN1SUBFUN1DOUBLETH SUBR) 
       (JSP 6 SPECBIND) 
       (0 1 (SPECIAL W) S) 
       (PUSH P (SPECIAL X) S) 
       (CALL 1 (E LINES) S) 
       (MOVE 2 1) 
       (POP P 1) 
       (CALL 2 (E MEMBER) S) 
       (JRST 0 SPECSTR) 
       NIL 

(LAP SUBFUN1DOUBLETH SUBR) 
       (JSP 6 SPECBIND) 
       (0 1 (SPECIAL X) S) 
       (MOVE 1 (SPECIAL W) S) 
       (JUMPE 1 TAG4) 
       (MOVE 1 (SPECIAL X) S) 
       (CALL 1 (E OCOUNT) S) 
       (MOVE 2 1) 
       (JRST 0 TAG3) 
 TAG4  (MOVE 1 (SPECIAL X) S) 
       (CALL 1 (E XCOUNT) S) 
       (MOVE 2 1) 
 TAG3  (MOVEI 1 (QUOTE 1)) 
       (CALL 2 (E EQUAL) S) 
       (JUMPE 1 TAG2) 
       (MOVE 2 (SPECIAL BS) S) 
       (HLRZ@ 1 (SPECIAL P) S) 
       (CALL 2 (E DELETE) S) 
       (MOVE 2 1) 
       (MOVEI 1 (QUOTE SUBFUN1SUBFUN1DOUBLETH) S) 
       (CALL 2 (E ORLIS) S) 
       (JUMPN 1 TAG1) 
 TAG2  (TDZA 1 1) 
 TAG1  (MOVEI 1 (QUOTE T) S) 
       (JRST 0 SPECSTR) 
       NIL 

(LAP DOUBLETH SUBR) 
       (JSP 6 SPECBIND) 
       (0 1 (SPECIAL P) S) 
       (HLRZ@ 1 1) 
       (CALL 1 (E LINES) S) 
       (MOVE 2 1) 
       (MOVEI 1 (QUOTE SUBFUN1DOUBLETH) S) 
       (CALL 2 (E TWOLIS) S) 
       (JRST 0 SPECSTR) 
       NIL 

(LAP TWOLIS SUBR) 
       (PUSH P 1) 
       (PUSH P 2) 
       (JUMPE 2 TAG2) 
       (HLRZ@ 1 2) 
       (CALLF@ 1 -1 P) 
       (JUMPE 1 TAG10) 
       (HRRZ@ 2 0 P) 
       (MOVE 1 -1 P) 
       (CALL 2 (E ORLIS) S) 
       (JUMPN 1 TAG1) 
 TAG10 (HRRZ@ 2 0 P) 
       (MOVE 1 -1 P) 
       (CALL 2 (E TWOLIS) S) 
       (JUMPN 1 TAG1) 
 TAG2  (TDZA 1 1) 
 TAG1  (MOVEI 1 (QUOTE T) S) 
       (SUB P (C 2 0 2 0)) 
       (POPJ P) 
       NIL 

(LAP SUBFUN1SUBFUN1THREAT SUBR) 
       (JSP 6 SPECBIND) 
       (0 1 (SPECIAL W) S) 
       (PUSH P (SPECIAL X) S) 
       (CALL 1 (E LINES) S) 
       (MOVE 2 1) 
       (POP P 1) 
       (CALL 2 (E MEMBER) S) 
       (JRST 0 SPECSTR) 
       NIL 

(LAP SUBFUN1THREAT SUBR) 
       (JSP 6 SPECBIND) 
       (0 1 (SPECIAL X) S) 
       (MOVE 1 (SPECIAL W) S) 
       (JUMPE 1 TAG4) 
       (MOVE 1 (SPECIAL X) S) 
       (CALL 1 (E OCOUNT) S) 
       (MOVE 2 1) 
       (JRST 0 TAG3) 
 TAG4  (MOVE 1 (SPECIAL X) S) 
       (CALL 1 (E XCOUNT) S) 
       (MOVE 2 1) 
 TAG3  (MOVEI 1 (QUOTE 1)) 
       (CALL 2 (E EQUAL) S) 
       (JUMPE 1 TAG2) 
       (MOVE 2 (SPECIAL BS) S) 
       (HLRZ@ 1 (SPECIAL P) S) 
       (CALL 2 (E DELETE) S) 
       (MOVE 2 1) 
       (MOVEI 1 (QUOTE SUBFUN1SUBFUN1THREAT) S) 
       (CALL 2 (E ORLIS) S) 
       (JUMPN 1 TAG1) 
 TAG2  (TDZA 1 1) 
 TAG1  (MOVEI 1 (QUOTE T) S) 
       (JRST 0 SPECSTR) 
       NIL 

(LAP THREAT SUBR) 
       (JSP 6 SPECBIND) 
       (0 1 (SPECIAL P) S) 
       (HLRZ@ 1 1) 
       (CALL 1 (E LINES) S) 
       (MOVE 2 1) 
       (MOVEI 1 (QUOTE SUBFUN1THREAT) S) 
       (CALL 2 (E ORLIS) S) 
       (JRST 0 SPECSTR) 
       NIL